Large-scale networked systems are commonplace platforms employed in a variety of settings for running applications and maintaining data for business and operational functions. For instance, a data center (e.g., physical cloud computing infrastructure) may provide a variety of services (e.g., web applications, email services, search engine services, etc.) for a plurality of customers simultaneously. These large-scale networked systems typically include a large number of resources distributed throughout the data center, in which each resource resembles physical machines or virtual machines running as guests on a physical host.
When the data center hosts multiple guests (e.g., virtual machines), these resources are scheduled to logical processors within the physical machines of a data center for varying durations of time. Often, mechanisms are utilized by operating system kernels to carry out the scheduling, as well as to synchronize data structures (e.g., logical processors) within the physical machines. These mechanisms typically employ the technique of spin waiting, which allows a logical processor that is scheduled to a virtual machine to spend time waiting for an event to occur without being rescheduled to another virtual machine. Generally, spin waits are consistently used in multithreaded environments that consider the costs associated with rescheduling a virtual machine much greater than the inefficiencies of interrupting a spin wait.
The multithreaded environments also rely on these mechanisms to schedule threads issued by multiple virtual processors (comprising the virtual machines) to be executed on multiple logical processors simultaneously. However, spin waits that are presently occurring on one or more of the multiple logical processors block the threads from being scheduled by others of the multiple virtual processors. These blocked logical processors create inefficiencies within the multithreaded environment. Accordingly, the general policy of allowing spin waits to achieve completion results in under-utilization of physical machines within a data center and significant throughput reductions with respect to the logical machines.